# -*- coding: utf-8 -*- 
# @project : 《剑指offer》
# @Author : created by bensonrachel on 2021/8/4
# @File : 01背包.py
# 每件商品只有一件！每种商品只有01代表选和不选两种选择。
def dp_01Beibao(char,n,v):
    dp = [[0]*(v+1) for _ in range(n+1)]
    for i in range(1,n+1):
        for j in range(1,v+1):
            if(j < char[i][0]):#不能放
                dp[i][j]=dp[i-1][j]
            else:#能放
                dp[i][j]=max(dp[i-1][j],dp[i-1][j-char[i][0]]+char[i][1])
                #               不偷              偷（偷的话要用当前体积减去该商品体积的前i-1个商品的dp值加上当前的价值）
    return dp[-1][-1]
if __name__ == "__main__":
    n,v = map(int ,input().split())
    char = [[0,0]]
    for _ in range(n):
        rate = [int(i) for i in input().split()]
        char.append(rate)
    print(dp_01Beibao(char,n,v))


#dp[i][j]表示在从前i个商品里选择偷出来的总背包体积不超过j时的最大价值。